package com.sqfw.project.knowledge.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sqfw.framework.aspectj.lang.annotation.Excel;
import com.sqfw.framework.web.domain.BaseEntity;

import javax.validation.constraints.NotNull;

/**
 * 【查无纠错数据表】对象 kl_has_notwrong
 * 
 * @author tangxt
 * @date 2023-06-09
 */
@Data
public class KlHasNotwrong extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private String id;

    /** 关联知识id */
    private String klId;

    /** 创建人 */
    private String klHasCreateperson;

    /** 纠错知识标题 */
    @Excel(name = "知识标题")
    private String klHasTitle;

    /** 查无/纠错描述 */
    @NotNull(message = "查无/纠错描述不能为空")
    @Excel(name = "查无/纠错描述")
    private String klHasPoint;

    /** 0：查无；1纠错 */
    @NotNull(message = "查无/纠错类型不能为空")
    private String klHasType;

    /** 0：查无；1纠错 --- 前端展示*/
    @Excel(name = "类型")
    private String klHasTypeDesc;

    /** 查无为空，纠错填写 */
    private String klHasContentid;

    /** 0 提交待审核, 3 待处理, 5 办结待审核, -1 已归档, -2 提交审核退回, -3 办结审核退回 （原备注 0：发起；1值班长审核；2管理办公室审核；-1已归档） */
    private String klHasStatus;

    /** 查无知识分类id(纠错知识分类和知识库中的分类一样) */
    @NotNull(message = "查无/纠错知识分类不能为空")
    private String klHasSort;

    /** 纠错关键字 */
    private String klHasKeyword;

    /** 创建-承办部门id(部门id) */
    private String klHasDeptId;

    /** 查无纠错原因code */
    @NotNull(message = "查无/纠错原因不能为空")
    private String klHasReason;

    /** 是否删除：0:否；1是 */
    private String klHasIsdel;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date klHasCreatime;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date klHasUpdatetime;

    /** 查无知识形式   "0":"政策法规","1":"服务机构","2":"名词解释","3":"办事指南","4":"便民问答","5":"其他" */
    @NotNull(message = "查无/纠错知识形式不能为空")
    private String klHasKnowledgeType;

    /** 已处理(前一个状态是：待处理)用户id--三级承办单位的用户id */
    private String klHasProcessingUserid;

    /** 已处理(前一个状态是：待处理)用户姓名--三级承办单位的用户姓名（真实姓名） */
    private String klHasProcessingUsername;

    /** 已处理(前一个状态是：待处理)时间--三级承办单位用户的审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date klHasProcessingTime;

    /** 创建用户工号 */
    @Excel(name = "用户工号")
    private String klHasAgentCode;

    /** 查无/纠错处理分类 */
    private String klHasDealtype;

    /** 查无/纠错有效程度(0-无效；1-有效；2-重复) */
    private String klHasEffective;

    /** 查无/纠错是否紧急(1:紧急；0:不紧急) */
    private Boolean isUrgent;

    /** 查无/纠错需要处理的单位(三级承办单位id) */
    private String processingDeptId;

    /**
     * 创建用户的真实姓名 --kl_has_real_name
     * */
    @Excel(name = "创建用户姓名")
    private String klHasRealName;

    /** 处理结果(第一层审核，不通过的处理结果字段) */
    private String processingResult;

    /** 提交审核时间（第一层审核时间） */
    private Date submitProcessTime;

    /** 第三层审核，修改用户id */
    private Long threeUpdateUserId;

    /** 三级承办单位是否审核中（阅读中），false(0)或者null：不在审核中（不在阅读中），true(1)：审核中（阅读中） */
    private Boolean isRead;

    //----------------查询条件----------------------


    /** 审核状态：1 审核通过, -2 审核未通过 - Audit state*/
    private String auditStatus;

    /**
     * 审核意见-Review comment
     * */
    private String reviewComment;


    // ------------------前端展示---------------

    /** 0 提交待审核, 3 待处理, 5 办结待审核, -1 已归档, -2 提交审核退回, -3 办结审核退回 （原备注 0：发起；1值班长审核；2管理办公室审核；-1已归档） */
    @Excel(name = "查无纠错状态")
    private String klHasStatusDesc;

    /** 查无知识分类描述 */
    @Excel(name = "知识分类")
    private String klHasSortDesc;

    /** 查无知识形式   "0":"政策法规","1":"服务机构","2":"名词解释","3":"办事指南","4":"便民问答","5":"其他" */
    @Excel(name = "知识形式")
    private String klHasKnowledgeTypeDesc;

    /**
     * 审核状态日志数据
     * */
    private List<KlContentStatusLog> statusLogList;

    /**
     * 是否用黄色预警--yellow alert
     *  true: 用； false: 不用
     * */
    private Boolean isYellowAlert;

    /**
     * 查无阶段，在第2个工作日时，做好在相关查无信息前备注“警”字；
     * 在第三个工作日，超时后做好超时的提醒，在相关查无信息前备注“超”字。
     * */
    private String displayWord;

    /**
     * 关联的文件
     * */
    List<KlContentFileInfo> fileList;

    /**
     * 处理单位名称
     * */
    private String processingDeptName;

    // -------添加关联

    /**
     * 关联的文件id List
     * */
    List<String> fileIdList;


}
